import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'
import app from './modules/app'
import settings from './modules/settings'
import user from './modules/user'

// 注册vuex
Vue.use(Vuex)

// 初始化vuex仓库
// state
// mutations 为什么不能有异步，为什么是同步的？
// 异步怎么办,actions
// getters,根据已有的状态派生出新的状态
// modules 模块化
// 能不能直接修改状态

const store = new Vuex.Store({
  // 模块化设计
  modules: {
    app,
    settings,
    user
  },
  // 根据已有的状态派生出新的属性，类似于组件中的计算属性
  getters
})

export default store
